package com.example.chessbattleplatform.config;

import com.example.chessbattleplatform.Interceptor.WebTokenInterceptor;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

// 拦截器配置
@Configuration
@RequiredArgsConstructor
public class WebInterceptorConfig implements WebMvcConfigurer {

    private final WebTokenInterceptor webTokenInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        /*
           拦截器拦截说明
           addInterceptor 添加拦截器
           addPathPatterns 添加拦截路径
           excludePathPatterns 放行路径
           项目的拦截路径
           拦截 /Test/** 开头的请求
           拦截 /api/** 开头的请求
           放行 / 开头的请求 即静态资源请求
           放行 /test/** 开头的请求 即静态资源请求
         */
        registry.addInterceptor(webTokenInterceptor)

                .addPathPatterns("/api/**")
                //测试拦截
                .addPathPatterns("/Test/**")

                //登录
                .excludePathPatterns("/api/loginUser")
                //邮箱登录
                .excludePathPatterns("/api/loginEmail")
                //注册
                .excludePathPatterns("/api/register")
                //开始游戏
                .excludePathPatterns("/api/room-board")

                //文件的 查看 下载 放行
                .excludePathPatterns("/fileApi/**")
                //测试 Test 接口
                .excludePathPatterns("/test/**");
    }
}
